#include <iostream>
using namespace std;

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
    int p1 = m - 1, p2 = n - 1;
    int tail = m + n - 1;
    int cur;
    while (p1 >= 0 || p2 >= 0) {
        if (p1 == -1) {
            cur = nums2[p2--];
        } else if (p2 == -1) {
            cur = nums1[p1--];
        } else if (nums1[p1] > nums2[p2]) {
            cur = nums1[p1--];
        } else {
            cur = nums2[p2--];
        }
        nums1[tail--] = cur;
    }
}

int main() {
    int nums1[] = {1, 3, 5, 0, 0, 0};
    int m = 3;
    int nums2[] = {2, 4, 6};
    int n = 3;
    merge(nums1, 6, m, nums2, n, n);
    cout << "Merged array: ";
    for (int i = 0; i < 6; i++) {
        cout << nums1[i] << " ";
    }
    cout << endl;
    return 0;
}


